<?php

namespace Ue\ErpBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * OrderShipment
 *
 * @ORM\Table(name="ue_order_shipment", indexes={@ORM\Index(name="express_id_idx", columns={"express_id"}), @ORM\Index(name="order_id_idx", columns={"order_id"})})
 * @ORM\Entity
 */
class OrderShipment
{
    /**
     * @var integer
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $id;

    /**
     * @var boolean
     *
     * @ORM\Column(name="is_sync", type="boolean", nullable=false)
     */
    private $isSync = '0';

    /**
     * @var boolean
     *
     * @ORM\Column(name="stock_out", type="boolean", nullable=false)
     */
    private $stockOut = '0';

    /**
     * @var string
     *
     * @ORM\Column(name="express_no", type="string", length=30, nullable=true)
     */
    private $expressNo;

    /**
     * @var integer
     *
     * @ORM\Column(name="goods_weight", type="bigint", nullable=true)
     */
    private $goodsWeight;

    /**
     * @var float
     *
     * @ORM\Column(name="goods_postfee", type="float", precision=12, scale=2, nullable=true)
     */
    private $goodsPostfee = '0.00';

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="created_at", type="datetime", nullable=false)
     */
    private $createdAt;

    /**
     * @var \DateTime
     *
     * @ORM\Column(name="updated_at", type="datetime", nullable=false)
     */
    private $updatedAt;

    /**
     * @var string
     *
     * @ORM\Column(name="comment", type="string", length=200, nullable=true)
     */
    private $comment;

    /**
     * @var integer
     *
     * @ORM\Column(name="package_count", type="bigint", nullable=true)
     */
    private $packageCount = '1';

    /**
     * @var \Express
     *
     * @ORM\ManyToOne(targetEntity="Express")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="express_id", referencedColumnName="id")
     * })
     */
    private $express;

    /**
     * @var \Order
     *
     * @ORM\ManyToOne(targetEntity="Order")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="order_id", referencedColumnName="id")
     * })
     */
    private $order;



    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set isSync
     *
     * @param boolean $isSync
     * @return OrderShipment
     */
    public function setIsSync($isSync)
    {
        $this->isSync = $isSync;

        return $this;
    }

    /**
     * Get isSync
     *
     * @return boolean 
     */
    public function getIsSync()
    {
        return $this->isSync;
    }

    /**
     * Set stockOut
     *
     * @param boolean $stockOut
     * @return OrderShipment
     */
    public function setStockOut($stockOut)
    {
        $this->stockOut = $stockOut;

        return $this;
    }

    /**
     * Get stockOut
     *
     * @return boolean 
     */
    public function getStockOut()
    {
        return $this->stockOut;
    }

    /**
     * Set expressNo
     *
     * @param string $expressNo
     * @return OrderShipment
     */
    public function setExpressNo($expressNo)
    {
        $this->expressNo = $expressNo;

        return $this;
    }

    /**
     * Get expressNo
     *
     * @return string 
     */
    public function getExpressNo()
    {
        return $this->expressNo;
    }

    /**
     * Set goodsWeight
     *
     * @param integer $goodsWeight
     * @return OrderShipment
     */
    public function setGoodsWeight($goodsWeight)
    {
        $this->goodsWeight = $goodsWeight;

        return $this;
    }

    /**
     * Get goodsWeight
     *
     * @return integer 
     */
    public function getGoodsWeight()
    {
        return $this->goodsWeight;
    }

    /**
     * Set goodsPostfee
     *
     * @param float $goodsPostfee
     * @return OrderShipment
     */
    public function setGoodsPostfee($goodsPostfee)
    {
        $this->goodsPostfee = $goodsPostfee;

        return $this;
    }

    /**
     * Get goodsPostfee
     *
     * @return float 
     */
    public function getGoodsPostfee()
    {
        return $this->goodsPostfee;
    }

    /**
     * Set createdAt
     *
     * @param \DateTime $createdAt
     * @return OrderShipment
     */
    public function setCreatedAt($createdAt)
    {
        $this->createdAt = $createdAt;

        return $this;
    }

    /**
     * Get createdAt
     *
     * @return \DateTime 
     */
    public function getCreatedAt()
    {
        return $this->createdAt;
    }

    /**
     * Set updatedAt
     *
     * @param \DateTime $updatedAt
     * @return OrderShipment
     */
    public function setUpdatedAt($updatedAt)
    {
        $this->updatedAt = $updatedAt;

        return $this;
    }

    /**
     * Get updatedAt
     *
     * @return \DateTime 
     */
    public function getUpdatedAt()
    {
        return $this->updatedAt;
    }

    /**
     * Set comment
     *
     * @param string $comment
     * @return OrderShipment
     */
    public function setComment($comment)
    {
        $this->comment = $comment;

        return $this;
    }

    /**
     * Get comment
     *
     * @return string 
     */
    public function getComment()
    {
        return $this->comment;
    }

    /**
     * Set packageCount
     *
     * @param integer $packageCount
     * @return OrderShipment
     */
    public function setPackageCount($packageCount)
    {
        $this->packageCount = $packageCount;

        return $this;
    }

    /**
     * Get packageCount
     *
     * @return integer 
     */
    public function getPackageCount()
    {
        return $this->packageCount;
    }

    /**
     * Set express
     *
     * @param \Ue\ErpBundle\Entity\Express $express
     * @return OrderShipment
     */
    public function setExpress(\Ue\ErpBundle\Entity\Express $express = null)
    {
        $this->express = $express;

        return $this;
    }

    /**
     * Get express
     *
     * @return \Ue\ErpBundle\Entity\Express 
     */
    public function getExpress()
    {
        return $this->express;
    }

    /**
     * Set order
     *
     * @param \Ue\ErpBundle\Entity\Order $order
     * @return OrderShipment
     */
    public function setOrder(\Ue\ErpBundle\Entity\Order $order = null)
    {
        $this->order = $order;

        return $this;
    }

    /**
     * Get order
     *
     * @return \Ue\ErpBundle\Entity\Order 
     */
    public function getOrder()
    {
        return $this->order;
    }
}
